#include "common.hpp"

void ori()
{
    // 创建key值
    key_t k = GetKey();
    cout << "server key:" << k << endl;

    // 创建共享内存
    int shmid = createShm(k, gsize);
    cout << "server shmid:" << shmid << endl;

    // 关联共享内存
    char *start = attachshm(shmid);//start指向的是共享内存的起始空间

    // 获取共享内存信息并打印，需要sudo执行查看
    //  struct shmid_ds ds;
    //  int n=shmctl(shmid,IPC_STAT,&ds);//IPC_STAT读取跟用户权限有关
    //  if(n!=-1)
    //  {
    //      cout << "creater pid: " << ds.shm_cpid  << " : " << getpid() << endl;
    //  }

    // 与共享内存断联
    detachshm(start);

    // 删除共享内存
    deleteshm(shmid);
}


void init() // 使用封装类实现
{
    Init init(SERVER);
    char *start = init.getStart();

    int n = 0;
    while (n <= 30)
    {
        cout << "client -> server# " << start << endl;
        sleep(1);
        n++;
    }
}

int main()
{
    //ori();//不采用类封装
    init();//类封装测试


    return 0;
}